home *** CD-ROM | disk | FTP | other *** search
- {*******************************************************}
- { }
- { Delphi Run-time Library }
- { Prototypes and constants required for the }
- { Win32 image help routines. }
- { }
- { Copyright (c) 1996 Borland International }
- { }
- {*******************************************************}
-
- unit Imagehlp;
-
- interface
-
- uses Windows;
-
- { Define checksum return codes. }
- const
- CHECKSUM_SUCCESS = 0;
- CHECKSUM_OPEN_FAILURE = 1;
- CHECKSUM_MAP_FAILURE = 2;
- CHECKSUM_MAPVIEW_FAILURE = 3;
- CHECKSUM_UNICODE_FAILURE = 4;
-
- { Define Splitsym flags. }
-
- SPLITSYM_REMOVE_PRIVATE = $00000001; { Remove CV types/symbols and Fixup debug }
- { Used for creating .dbg files that ship }
- { as part of the product. }
-
- SPLITSYM_EXTRACT_ALL = $00000002; { Extract all debug info from image. }
- { Normally, FPO is left in the image }
- { to allow stack traces through the code. }
- { Using this switch is similar to linking }
- { with -debug:none except the .dbg file }
- { exists... }
-
- { Define checksum function prototypes. }
- function CheckSumMappedFile(BaseAddress: Pointer; FileLength: DWORD;
- HeaderSum: PDWORD; CheckSum: PDWORD): PImageNtHeaders; stdcall;
-
- function MapFileAndCheckSumA(Filename: PAnsiChar; var HeaderSum,
- CheckSum: DWORD): DWORD; stdcall;
- function MapFileAndCheckSumW(Filename: PWideChar; var HeaderSum,
- CheckSum: DWORD): DWORD; stdcall;
- function MapFileAndCheckSum(Filename: PChar; var HeaderSum,
- CheckSum: DWORD): DWORD; stdcall;
-
-
- function TouchFileTimes(FileHandle: THandle; const lpSystemTime: TSystemTime):
- Bool; stdcall;
-
- function SplitSymbols(ImageName, SymbolsPath, SymbolFilePath: LPSTR;
- Flags: DWORD): Bool; stdcall;
-
- function FindDebugInfoFile(FileName, SymbolPath, DebugFilePath: LPSTR): THandle; stdcall;
-
- function FindExecutableImage(FileName, SymbolPath, ImageFilePath: LPSTR): THandle; stdcall;
-
- function UpdateDebugInfoFile(ImageFileName, SymbolPath, DebugFilePath: LPSTR;
- NtHeaders: PImageNtHeaders): Bool; stdcall;
-
- function UpdateDebugInfoFileEx(ImageFileName, SymbolPath, DebugFilePath: LPSTR;
- NtHeaders: PImageNtHeaders; OldChecksum: DWORD): Bool; stdcall;
-
- function BindImage(ImageName, DllPath, SymbolPath: LPSTR): Bool; stdcall;
-
- type
- TImagehlpStatusReason = (
- BindOutOfMemory,
- BindRvaToVaFailed,
- BindNoRoomInImage,
- BindImportModuleFailed,
- BindImportProcedureFailed,
- BindImportModule,
- BindImportProcedure,
- BindForwarder,
- BindForwarderNOT,
- BindImageModified,
- BindExpandFileHeaders,
- BindImageComplete,
- BindMismatchedSymbols,
- BindSymbolsNotUpdated
- );
-
- type
- TImagehlpStatusRoutine = function(Reason: TImagehlpStatusReason;
- ImageName, DllName: LPSTR; Va, Parameter: ULONG): Bool; stdcall;
-
-
- function BindImageEx(Flags: DWORD; ImageName, DllPath, SymbolPath: LPSTR;
- var StatusRoutine: TImagehlpStatusReason): Bool; stdcall;
-
- const
- BIND_NO_BOUND_IMPORTS = $00000001;
- BIND_NO_UPDATE = $00000002;
- BIND_ALL_IMAGES = $00000004;
-
- function ReBaseImage(CurrentImageName, SymbolPath: LPSTR; fReBase,
- fRebaseSysfileOk, fGoingDown: Bool; CheckImageSize: ULONG;
- var OldImageSize, OldImageBase, NewImageSize, NewImageBase: ULONG;
- TimeStamp: ULONG): Bool; stdcall;
-
- const
- IMAGE_SEPARATION = 64 * 1024;
-
- type
- PloadedImage = ^LoadedImage;
- LoadedImage = packed record
- ModuleName: LPSTR;
- hFile: THandle;
- MappedAddress: PChar;
- FileHeader: PImageNtHeaders;
- LastRvaSection: PImageSectionHeader;
- NumberOfSections: ULONG;
- Sections: PImageSectionHeader;
- Characteristics: ULONG;
- fSystemImage: ByteBool;
- fDOSImage: ByteBool;
- Links: TListEntry;
- SizeOfImage: ULONG;
- end;
-
-
- function ImageLoad(DllName, DllPath: LPSTR): PLoadedImage; stdcall;
-
- function ImageUnload(LoadedImage: PLoadedImage): Bool; stdcall;
-
- function ImageNtHeader(Base: Pointer): PImageNtHeaders; stdcall;
-
- function ImageDirectoryEntryToData(Base: Pointer; MappedAsImage: ByteBool;
- DirectoryEntry: Word; var Size: ULONG): Pointer; stdcall;
-
- function ImageRvaToSection(NtHeaders: PImageNtHeaders; Base: Pointer;
- Rva: ULONG): PImageSectionHeader; stdcall;
-
- function ImageRvaToVa(NtHeaders: PImageNtHeaders; Base: Pointer;
- Rva: ULONG; var LastRvaSection: PImageSectionHeader): Pointer; stdcall;
-
- function MapAndLoad(ImageName, DllPath: LPSTR; LoadedImage: PLoadedImage;
- DotDll, ReadOnly: Bool): Bool; stdcall;
-
- function GetImageConfigInformation(LoadedImage: PLoadedImage;
- var ImageConfigInformation: TImageLoadConfigDirectory): Bool; stdcall;
-
- function GetImageUnusedHeaderBytes(LoadedImage: PLoadedImage;
- var SizeUnusedHeaderBytes: DWORD): DWORD; stdcall;
-
- function SetImageConfigInformation(LoadedImage: PLoadedImage;
- const ImageConfigInformation: TImageLoadConfigDirectory): Bool; stdcall;
-
- function UnMapAndLoad(LoadedImage: PLoadedImage): Bool; stdcall;
-
- type
- PimageDebugInformation = ^TImageDebugInformation;
- TImageDebugInformation = packed record
- List: TListEntry;
- Size: DWORD;
- MappedBase: Pointer;
- Machine: Word;
- Characteristics: Word;
- CheckSum: DWORD;
- ImageBase: DWORD;
- SizeOfImage: DWORD;
- NumberOfSections: DWORD;
- Sections: PImageSectionHeader;
- ExportedNamesSize: DWORD;
- ExportedNames: LPSTR;
- NumberOfFunctionTableEntries: DWORD;
- FunctionTableEntries: PImageFunctionEntry;
- LowestFunctionStartingAddress: DWORD;
- HighestFunctionEndingAddress: DWORD;
- NumberOfFpoTableEntries: DWORD;
- FpoTableEntries: PFpoData;
- SizeOfCoffSymbols: DWORD;
- CoffSymbols: PImageCOFFSymbolsHeader;
- SizeOfCodeViewSymbols: DWORD;
- CodeViewSymbols: Pointer;
- ImageFilePath: LPSTR;
- ImageFileName: LPSTR;
- DebugFilePath: LPSTR;
- TimeDateStamp: DWORD;
- RomImage: Bool;
- DebugDirectory: PImageDebugDirectory;
- NumberOfDebugDirectories: DWORD;
- Reserved: packed array[0..2] of DWORD;
- end;
-
- function MapDebugInformation(FileHandle: THandle; FileName, SymbolPath: LPSTR;
- ImageBase: DWORD): PImageDebugInformation; stdcall;
-
- function UnmapDebugInformation(DebugInfo: PImageDebugInformation): Bool; stdcall;
-
- function SearchTreeForFile(RootPath, InputPathName, OutputPathBuffer: LPSTR):
- Bool; stdcall;
-
- function MakeSureDirectoryPathExists(DirPath: LPCSTR): Bool; stdcall;
-
- { UnDecorateSymbolName Flags }
- const
- UNDNAME_COMPLETE = $0000; { Enable full undecoration }
- UNDNAME_NO_LEADING_UNDERSCORES = $0001; { Remove leading underscores from MS extended keywords }
- UNDNAME_NO_MS_KEYWORDS = $0002; { Disable expansion of MS extended keywords }
- UNDNAME_NO_FUNCTION_RETURNS = $0004; { Disable expansion of return type for primary declaration }
- UNDNAME_NO_ALLOCATION_MODEL = $0008; { Disable expansion of the declaration model }
- UNDNAME_NO_ALLOCATION_LANGUAGE = $0010; { Disable expansion of the declaration language specifier }
- UNDNAME_NO_MS_THISTYPE = $0020; { NYI Disable expansion of MS keywords on the 'this' type for primary declaration }
- UNDNAME_NO_CV_THISTYPE = $0040; { NYI Disable expansion of CV modifiers on the 'this' type for primary declaration }
- UNDNAME_NO_THISTYPE = $0060; { Disable all modifiers on the 'this' type }
- UNDNAME_NO_ACCESS_SPECIFIERS = $0080; { Disable expansion of access specifiers for members }
- UNDNAME_NO_THROW_SIGNATURES = $0100; { Disable expansion of 'throw-signatures' for functions and pointers to functions }
- UNDNAME_NO_MEMBER_TYPE = $0200; { Disable expansion of 'static' or 'virtual'ness of members }
- UNDNAME_NO_RETURN_UDT_MODEL = $0400; { Disable expansion of MS model for UDT returns }
- UNDNAME_32_BIT_DECODE = $0800; { Undecorate 32-bit decorated names }
- UNDNAME_NAME_ONLY = $1000; { Crack only the name for primary declaration; }
- { return just [scope::]name. Does expand template params }
- UNDNAME_NO_ARGUMENTS = $2000; { Don't undecorate arguments to function }
- UNDNAME_NO_SPECIAL_SYMS = $4000; { Don't undecorate special names (v-table, vcall, vector xxx, metatype, etc) }
-
- function UnDecorateSymbolName(DecoratedName, UnDecoratedName: LPSTR;
- UndecoratedLength, Flags: DWORD): DWORD; stdcall;
-
-
- { StackWalking API }
- type
- TAddressMode = (
- AddrMode1616,
- AddrMode1632,
- AddrModeReal,
- AddrModeFlat
- );
-
- PAddress = ^TAddress;
- TAddress = packed record
- Offset: DWORD;
- Segment: Word;
- Mode: TAddressMode;
- end;
-
- { This structure is included in the STACKFRAME structure, }
- { and is used to trace through usermode callbacks in a thread's }
- { kernel stack. The values must be copied by the kernel debugger }
- { from the DBGKD_GET_VERSION and WAIT_STATE_CHANGE packets. }
-
- PKdHelp = ^TKdHelp;
- TKdHelp = packed record { address of kernel thread object, as provided }
- { in the WAIT_STATE_CHANGE packet. }
- Thread: DWORD;
- { offset in thread object to pointer to the current callback frame }
- { in kernel stack. }
- ThCallbackStack: DWORD;
- { offsets to values in frame: }
- { address of next callback frame }
- NextCallback: DWORD;
- { address of saved frame pointer (if applicable) }
- FramePointer: DWORD;
- { Address of the kernel function that calls out to user mode }
- KiCallUserMode: DWORD;
- { Address of the user mode dispatcher function }
- KeUserCallbackDispatcher: DWORD;
- end;
-
- PStackFrame = ^TStackFrame;
- TStackFrame = packed record
- AddrPC: TAddress; { program counter }
- AddrReturn: TAddress; { return address }
- AddrFrame: TAddress; { frame pointer }
- AddrStack: TAddress; { stack pointer }
- FuncTableEntry: Pointer; { pointer to pdata/fpo or NULL }
- Params: packed array[0..3] of DWORD;{ possible arguments to the function }
- _Far: Bool; { WOW far call }
- _Virtual: Bool; { is this a virtual frame? }
- Reserved: packed array[0..2] of DWORD;{ used internally by StackWalk api }
- KdHelp: TKdHelp;
- end;
-
- type
- TReadProcessMemoryRoutine = function(hProcess: THandle;
- lpBaseAddress, lpBuffer: Pointer; nSize: DWORD;
- var lpNumberOfBytesRead: DWORD): Bool; stdcall;
-
- TFunctionTableAccessRoutine = function(hProcess: THandle;
- AddrBase: DWORD): Pointer; stdcall;
-
- TGetModuleBaseRoutine = function(hProcess: THandle;
- ReturnAddress: DWORD): DWORD; stdcall;
-
- TTranslateAddressRoutine = function(hProcess, hThread: THandle;
- lpaddr: PAddress): DWORD; stdcall;
-
- function StackWalk(MachineType: DWORD; hProcess, hThread: THandle;
- StackFrame: PStackFrame; ContextRecord: Pointer;
- ReadMemoryRoutine: TReadProcessMemoryRoutine;
- FunctionTableAccessRoutine: TFunctionTableAccessRoutine;
- GetModuleBaseRoutine: TGetModuleBaseRoutine;
- TranslateAddress: TTranslateAddressRoutine): Bool; stdcall;
-
- const
- API_VERSION_NUMBER = 5;
-
- type
- PApiVersion = ^TApiVersion;
- TApiVersion = packed record
- MajorVersion: Word;
- MinorVersion: Word;
- Revision: Word;
- Reserved: Word;
- end;
-
- function ImagehlpApiVersion: PApiVersion; stdcall;
-
- function ImagehlpApiVersionEx(var AppVersion: TApiVersion): PApiVersion; stdcall;
-
- function GetTimestampForLoadedLibrary(Module: HMODULE): DWORD; stdcall;
-
- function RemovePrivateCvSymbolic(DebugData: PChar; var NewDebugData: PChar;
- var NewDebugSize: ULONG): Bool; stdcall;
-
- procedure RemoveRelocations(ImageName: PChar); stdcall;
-
-
- { typedefs for function pointers }
- type
- TSymEnummodulesCallback = function(ModuleName: LPSTR; BaseOfDll: ULONG;
- UserContext: Pointer): Bool; stdcall;
-
- TSymEnumsymbolsCallback = function(SymbolName: LPSTR; SymbolAddress,
- SymbolSize: ULONG; UserContext: Pointer): Bool; stdcall;
-
- TEnumloadedModulesCallback = function(ModuleName: LPSTR; ModuleBase,
- ModuleSize: ULONG; UserContext: Pointer): Bool; stdcall;
-
- TSymbolRegisteredCallback = function(hProcess: THandle; ActionCode: ULONG;
- CallbackData, UserContext: Pointer): Bool; stdcall;
-
-
- { symbol flags }
- const
- SYMF_OMAP_GENERATED = $00000001;
- SYMF_OMAP_MODIFIED = $00000002;
-
-
- { symbol type enumeration }
- type
- TSymType = (
- SymNone,
- SymCoff,
- SymCv,
- SymPdb,
- SymExport,
- SymDeferred,
- SymSym { .sym file }
- );
-
- { symbol data structure }
- PImagehlpSymbol = ^TImagehlpSymbol;
- TImagehlpSymbol = packed record
- SizeOfStruct: DWORD; { set to sizeof(IMAGEHLP_SYMBOL) }
- Address: DWORD; { virtual address including dll base address }
- Size: DWORD; { estimated size of symbol, can be zero }
- Flags: DWORD; { info about the symbols, see the SYMF defines }
- MaxNameLength: DWORD; { maximum size of symbol name in 'Name' }
- Name: packed array[0..0] of Char; { symbol name (null terminated string) }
- end;
-
-
- { module data structure }
- PImagehlpModule = ^TImagehlpModule;
- TImagehlpModule = packed record
- SizeOfStruct: DWORD; { set to sizeof(IMAGEHLP_MODULE) }
- BaseOfImage: DWORD; { base load address of module }
- ImageSize: DWORD; { virtual size of the loaded module }
- TimeDateStamp: DWORD; { date/time stamp from pe header }
- CheckSum: DWORD; { checksum from the pe header }
- NumSyms: DWORD; { number of symbols in the symbol table }
- SymType: TSymType; { type of symbols loaded }
- ModuleName: packed array[0..31] of Char; { module name }
- ImageName: packed array[0..255] of Char; { image name }
- LoadedImageName: packed array[0..255] of Char; { symbol file name }
- end;
-
-
- { data structures used for registered symbol callbacks }
- const
- CBA_DEFERRED_SYMBOL_LOAD_START = $00000001;
- CBA_DEFERRED_SYMBOL_LOAD_COMPLETE = $00000002;
- CBA_DEFERRED_SYMBOL_LOAD_FAILURE = $00000003;
- CBA_SYMBOLS_UNLOADED = $00000004;
- CBA_DUPLICATE_SYMBOL = $00000005;
-
- type
- PImagehlpDeferredSymbolLoad = ^TImagehlpDeferredSymbolLoad;
- TImagehlpDeferredSymbolLoad = packed record
- SizeOfStruct: DWORD; { set to sizeof(IMAGEHLP_DEFERRED_SYMBOL_LOAD) }
- BaseOfImage: DWORD; { base load address of module }
- CheckSum: DWORD; { checksum from the pe header }
- TimeDateStamp: DWORD; { date/time stamp from pe header }
- FileName: packed array[0..MAX_PATH-1] of Char; { symbols file or image name }
- end;
-
- PImagehlpDuplicateSymbol = ^TImagehlpDuplicateSymbol;
- TImagehlpDuplicateSymbol = packed record
- SizeOfStruct: DWORD; { set to sizeof(IMAGEHLP_DUPLICATE_SYMBOL) }
- NumberOfDups: DWORD; { number of duplicates in the Symbol array }
- Symbol: PImagehlpSymbol; { array of duplicate symbols }
- SelectedSymbol: ULONG; { symbol selected (-1 to start) }
- end;
-
-
-
- { options that are set/returned by SymSetOptions() & SymGetOptions() }
- { these are used as a mask }
-
- const
- SYMOPT_CASE_INSENSITIVE = $00000001;
- SYMOPT_UNDNAME = $00000002;
- SYMOPT_DEFERRED_LOADS = $00000004;
- SYMOPT_NO_CPP = $00000008;
-
-
- function SymSetOptions(SymOptions: DWORD): DWORD; stdcall;
-
- function SymGetOptions: DWORD; stdcall;
-
- function SymCleanup(hProcess: THandle): Bool; stdcall;
-
- function SymEnumerateModules(hProcess: THandle;
- EnumModulesCallback: TSymEnumModulesCallback; UserContext: Pointer): Bool; stdcall;
-
- function SymEnumerateSymbols(hProcess: THandle; BaseOfDll: DWORD;
- EnumSymbolsCallback: TSymEnumSymbolsCallback; UserContext: Pointer): Bool; stdcall;
-
- function EnumerateLoadedModules(hProcess: THandle;
- EnumLoadedModulesCallback: TEnumLoadedModulesCallback;
- UserContext: Pointer): Bool; stdcall;
-
- function SymFunctionTableAccess(hProcess: THandle; AddrBase: DWORD): Pointer; stdcall;
-
- function SymGetModuleInfo(hProcess: THandle; dwAddr: DWORD;
- var ModuleInfo: TImagehlpModule): Bool; stdcall;
-
- function SymGetModuleBase(hProcess: THandle; dwAddr: DWORD): DWORD; stdcall;
-
- function SymGetSymFromAddr(hProcess: THandle; dwAddr: DWORD;
- pdwDisplacement: PDWORD; var Symbol: TImagehlpSymbol): Bool; stdcall;
-
- function SymGetSymFromName(hProcess: THandle; Name: LPSTR;
- var Symbol: TImagehlpSymbol): Bool; stdcall;
-
- function SymGetSymNext(hProcess: THandle; var Symbol: TImagehlpSymbol): Bool; stdcall;
-
- function SymGetSymPrev(hProcess: THandle; var Symbol: TImagehlpSymbol): Bool; stdcall;
-
- function SymInitialize(hProcess: THandle; UserSearchPath: LPSTR;
- fInvadeProcess: Bool): Bool; stdcall;
-
- function SymGetSearchPath(hProcess: THandle; SearchPath: LPSTR;
- SearchPathLength: DWORD): Bool; stdcall;
-
- function SymSetSearchPath(hProcess: THandle; SearchPath: LPSTR): Bool; stdcall;
-
- function SymLoadModule(hProcess: THandle; hFile: THandle; ImageName,
- ModuleName: LPSTR; BaseOfDll, SizeOfDll: DWORD): Bool; stdcall;
-
- function SymUnloadModule(hProcess: THandle; BaseOfDll: DWORD): Bool; stdcall;
-
- function SymUnDName(sym: PImagehlpSymbol; UnDecName: LPSTR;
- UnDecNameLength: DWORD): Bool; stdcall;
-
- function SymRegisterCallback(hProcess: THandle;
- CallbackFunction: TSymbolRegisteredCallback; UserContext: Pointer): Bool; stdcall;
-
- { Image Integrity API's }
-
- const
- CERT_PE_IMAGE_DIGEST_DEBUG_INFO = $01;
- CERT_PE_IMAGE_DIGEST_RESOURCES = $02;
- CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO = $04;
-
- CERT_SECTION_TYPE_ANY = $FF; { Any Certificate type }
-
- type
- TDigestHandle = Pointer;
-
- type
- TDigestFunction = function(refdata: TDigestHandle; pData: PByte;
- dwLength: DWORD): Bool; stdcall;
-
- function ImageGetDigestStream(FileHandle: THandle; DigestLevel: DWORD;
- DigestFunction: TDigestFunction; DigestHandle: TDigestHandle): Bool; stdcall;
-
- function ImageAddCertificate(FileHandle: THandle;
- var Certificate: PWinCertificate; var Index: DWORD): Bool; stdcall;
-
- function ImageRemoveCertificate(FileHandle: THandle; Index: DWORD): Bool; stdcall;
-
- function ImageEnumerateCertificates(FileHandle: THandle; TypeFilter: Word;
- CertificateCount, Indices, IndexCount: PDWORD): Bool; stdcall;
-
- function ImageGetCertificateData(FileHandle: THandle; CertificateIndex: DWORD;
- Certificate: PWinCertificate; var RequiredLength: DWORD): Bool; stdcall;
-
- function ImageGetCertificateHeader(FileHandle: THandle; CertificateIndex: DWORD;
- var Certificateheader: PWinCertificate): Bool; stdcall;
-
- implementation
-
- const
- ImagehlpLib = 'IMAGEHLP.DLL';
-
- function BindImage; external ImagehlpLib name 'BindImage';
- function BindImageEx; external ImagehlpLib name 'BindImageEx';
- function CheckSumMappedFile; external ImagehlpLib name 'CheckSumMappedFile';
- function EnumerateLoadedModules; external ImagehlpLib name 'EnumerateLoadedModules';
- function FindDebugInfoFile; external ImagehlpLib name 'FindDebugInfoFile';
- function FindExecutableImage; external ImagehlpLib name 'FindExecutableImage';
- function GetImageConfigInformation; external ImagehlpLib name 'GetImageConfigInformation';
- function GetImageUnusedHeaderBytes; external ImagehlpLib name 'GetImageUnusedHeaderBytes';
- function GetTimestampForLoadedLibrary; external ImagehlpLib name 'GetTimestampForLoadedLibrary';
- function ImageAddCertificate; external ImagehlpLib name 'ImageAddCertificate';
- function ImageDirectoryEntryToData; external ImagehlpLib name 'ImageDirectoryEntryToData';
- function ImageEnumerateCertificates; external ImagehlpLib name 'ImageEnumerateCertificates';
- function ImageGetCertificateData; external ImagehlpLib name 'ImageGetCertificateData';
- function ImageGetCertificateHeader; external ImagehlpLib name 'ImageGetCertificateHeader';
- function ImageGetDigestStream; external ImagehlpLib name 'ImageGetDigestStream';
- function ImagehlpApiVersion; external ImagehlpLib name 'ImagehlpApiVersion';
- function ImagehlpApiVersionEx; external ImagehlpLib name 'ImagehlpApiVersionEx';
- function ImageLoad; external ImagehlpLib name 'ImageLoad';
- function ImageNtHeader; external ImagehlpLib name 'ImageNtHeader';
- function ImageRemoveCertificate; external ImagehlpLib name 'ImageRemoveCertificate';
- function ImageRvaToSection; external ImagehlpLib name 'ImageRvaToSection';
- function ImageRvaToVa; external ImagehlpLib name 'ImageRvaToVa';
- function ImageUnload; external ImagehlpLib name 'ImageUnload';
- function MakeSureDirectoryPathExists; external ImagehlpLib name 'MakeSureDirectoryPathExists';
- function MapAndLoad; external ImagehlpLib name 'MapAndLoad';
- function MapDebugInformation; external ImagehlpLib name 'MapDebugInformation';
- function MapFileAndCheckSumA; external ImagehlpLib name 'MapFileAndCheckSumA';
- function MapFileAndCheckSumW; external ImagehlpLib name 'MapFileAndCheckSumW';
- function MapFileAndCheckSum; external ImagehlpLib name 'MapFileAndCheckSumA';
- function ReBaseImage; external ImagehlpLib name 'ReBaseImage';
- function RemovePrivateCvSymbolic; external ImagehlpLib name 'RemovePrivateCvSymbolic';
- procedure RemoveRelocations; external ImagehlpLib name 'RemoveRelocations';
- function SearchTreeForFile; external ImagehlpLib name 'SearchTreeForFile';
- function SetImageConfigInformation; external ImagehlpLib name 'SetImageConfigInformation';
- function SplitSymbols; external ImagehlpLib name 'SplitSymbols';
- function StackWalk; external ImagehlpLib name 'StackWalk';
- function SymCleanup; external ImagehlpLib name 'SymCleanup';
- function SymEnumerateModules; external ImagehlpLib name 'SymEnumerateModules';
- function SymEnumerateSymbols; external ImagehlpLib name 'SymEnumerateSymbols';
- function SymFunctionTableAccess; external ImagehlpLib name 'SymFunctionTableAccess';
- function SymGetModuleBase; external ImagehlpLib name 'SymGetModuleBase';
- function SymGetModuleInfo; external ImagehlpLib name 'SymGetModuleInfo';
- function SymGetOptions; external ImagehlpLib name 'SymGetOptions';
- function SymGetSearchPath; external ImagehlpLib name 'SymGetSearchPath';
- function SymGetSymFromAddr; external ImagehlpLib name 'SymGetSymFromAddr';
- function SymGetSymFromName; external ImagehlpLib name 'SymGetSymFromName';
- function SymGetSymNext; external ImagehlpLib name 'SymGetSymNext';
- function SymGetSymPrev; external ImagehlpLib name 'SymGetSymPrev';
- function SymInitialize; external ImagehlpLib name 'SymInitialize';
- function SymLoadModule; external ImagehlpLib name 'SymLoadModule';
- function SymRegisterCallback; external ImagehlpLib name 'SymRegisterCallback';
- function SymSetOptions; external ImagehlpLib name 'SymSetOptions';
- function SymSetSearchPath; external ImagehlpLib name 'SymSetSearchPath';
- function SymUnDName; external ImagehlpLib name 'SymUnDName';
- function SymUnloadModule; external ImagehlpLib name 'SymUnloadModule';
- function TouchFileTimes; external ImagehlpLib name 'TouchFileTimes';
- function UnDecorateSymbolName; external ImagehlpLib name 'UnDecorateSymbolName';
- function UnMapAndLoad; external ImagehlpLib name 'UnMapAndLoad';
- function UnmapDebugInformation; external ImagehlpLib name 'UnmapDebugInformation';
- function UpdateDebugInfoFile; external ImagehlpLib name 'UpdateDebugInfoFile';
- function UpdateDebugInfoFileEx; external ImagehlpLib name 'UpdateDebugInfoFileEx';
-
- end.
-